package servlets;

import bean.Benutzer;

import java.io.IOException;
import java.text.DecimalFormat;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import dao.UserDAO;

@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private UserDAO dao = new UserDAO();

	public UserServlet() {

	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		HttpSession session = request.getSession(true);
		String entscheidung=request.getParameter("submit");
		System.out.println(entscheidung);
		String bname=(String) session.getAttribute("login");
		
		if(entscheidung.equals("Einloggen")){
		String bnamee = request.getParameter("bnamee");
		String pww = request.getParameter("pww");

		String[] a = dao.benutzerAnmelden(bnamee, pww);

		if (a[0].equals("korrekt") && a[1].equals("k")) {
			session.setAttribute("login", bnamee);
			session.setAttribute("status", "k");

			try {
				response.sendRedirect("EinloggErfolg.jsp");
			} catch (IOException e) {
				e.printStackTrace();
			}
		} else if (a[0].equals("korrekt") && a[1].equals("v")) {
			session.setAttribute("login", bnamee);
			session.setAttribute("status", "v");

			try {
				response.sendRedirect("EinloggErfolg.jsp");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		else {
			try {
				response.sendRedirect("einloggfehler.jsp");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
		else if(entscheidung.equals("ja")) {
		System.out.println("Statistik!");
		String a= (String) session.getAttribute("status");
		int statistik=dao.benutzerStatistik(bname,a);
		
		
		
		int[]  bewertungstatistik=dao.benutzerStatistikBewertung(bname,a);
		
		float ergebnis1=bewertungstatistik[0];
		float ergebnis2=bewertungstatistik[1];
		System.out.println(ergebnis1 + " " + ergebnis2);
		if(ergebnis1 == 0){
			session.setAttribute("bewertungstatistik", 0);
		}
			else {
				
		float finalergebnis = ergebnis1/ergebnis2;
			
		session.setAttribute("bewertungstatistik", finalergebnis);
		}
		
		
		
		int artikelalle= dao.benutzerStatistikAlle(bname);
		session.setAttribute("artikelalle", artikelalle);
		if(a.equals("v")){
			session.setAttribute("statall", statistik);
			response.sendRedirect("Statistiken.jsp");
		}
		else{
			statistik=statistik*(-1);
			session.setAttribute("statall", statistik);
			response.sendRedirect("Statistiken.jsp");
			
		}
	}
		
		else if(entscheidung.equals("bewerten!")){
			System.out.println("jaaaaaa");
		String a= (String) session.getAttribute("idd");
		int b= Integer.valueOf(a);
			System.out.println("Dies hier ist " +b);
			String anbieter =(String)  session.getAttribute("anbieter");
			String bieter= (String) session.getAttribute("bieter");
			String status=(String) session.getAttribute("status");
			
			int bewertung=Integer.parseInt( request.getParameter("bew"));
			
			
			System.out.println("Die Bewertung iost " + bewertung);
			
			if(status.equals("v")){
				boolean s=dao.bieterBewerten(b,anbieter,bieter,bewertung);
				if(s==true){
					response.sendRedirect("Bewertungerfolg.jsp");
				}
				else {
					response.sendRedirect("Bewertungfehl.jsp");
				}
				
				}
				else {
					boolean s=dao.anbieterBewerten(b,anbieter,bieter,bewertung);
					System.out.println("erfolgreich bewertet");	
					if(s==true){
						response.sendRedirect("Bewertungerfolg.jsp");
					}
					else {
						response.sendRedirect("Bewertungfehl.jsp");
					}
					
					}
					
		}
		
	}
	

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		HttpSession session = request.getSession(true);
		String entscheidung=request.getParameter("submit");
		if(entscheidung.equals("Registrieren")){
		String vorname = request.getParameter("vorname");
		String nachname = request.getParameter("nachname");
		String bname = request.getParameter("bname");
		String pw = request.getParameter("pw");
		String adresse = request.getParameter("adresse");
		String knr = request.getParameter("knr");
		String blz = request.getParameter("blz");
		String email = request.getParameter("email");
		String status = request.getParameter("status");

		if (dao.checkUsername(bname)) {

			try {
				response.sendRedirect("Regfehler.jsp");
			} catch (IOException e) {
				// System.out.println("Error: Email-Adresse ist schon vorhanden.");
				// e.printStackTrace();
			}
		}

		else if (dao.checkUsername(bname) == false) {
			Benutzer u = new Benutzer(vorname, nachname, bname, pw, adresse,
					knr, blz, email, status);
			dao.benutzerErstellen(u);
			response.sendRedirect("Regerfolg.jsp");
		}

		System.out.println("Bin in Servlet1");

	}

}
}
